package com.sh.shanhuo.database.sort;

import android.content.Context;

import java.util.Collections;
import java.util.List;

public class SortInfoDBUtils {

    public static List<SortInfoEntity> getAll(Context context) {

        SortInfoDao sortInfoDao = SortInfoDatabase.getDatabase(context).getSortInfoDao();
        List<SortInfoEntity> sortInfoEntities = sortInfoDao.queryAll();
        Collections.sort(sortInfoEntities, (o1, o2) -> (int) (o1.sequence - o2.sequence));
        return sortInfoEntities;
    }

    public static SortInfoEntity getWebInfoBySortId(Context context, String sortId) {

        SortInfoDao sortInfoDao = SortInfoDatabase.getDatabase(context).getSortInfoDao();
        return sortInfoDao.findBySortId(sortId);
    }


    public static void insertSortInfo(Context context, SortInfoEntity sortInfoEntity) {

        SortInfoDao sortInfoDao = SortInfoDatabase.getDatabase(context).getSortInfoDao();
        SortInfoEntity sortInfoByDB = sortInfoDao.findBySortId(sortInfoEntity.sortName);
        if (sortInfoByDB != null) {
            sortInfoEntity._id = sortInfoByDB._id;
            sortInfoDao.update(sortInfoEntity);
        } else {
            sortInfoDao.insert(sortInfoEntity);
        }
    }

    public static void deleteAll(Context context) {
        List<SortInfoEntity> all = getAll(context);
        for (SortInfoEntity sortInfoEntity : all) {
            if (!"默认".equals(sortInfoEntity.sortName)) {
                delete(context, sortInfoEntity);
            }
        }
    }

    public static void delete(Context context, SortInfoEntity sortInfoEntity) {
        SortInfoDao sortInfoDao = SortInfoDatabase.getDatabase(context).getSortInfoDao();
        sortInfoDao.delete(sortInfoEntity);
    }

    public static void insertAll(Context context, List<SortInfoEntity> sortInfoEntities) {

        deleteAll(context);
        for (int i = 0; i < sortInfoEntities.size(); i++) {
            insertSortInfo(context, sortInfoEntities.get(i));
        }
    }

}
